from rest_framework.mixins import ListModelMixin,RetrieveModelMixin,CreateModelMixin,UpdateModelMixin,DestroyModelMixin
from rest_framework.generics import GenericAPIView
from product.models import Product
from Apis.serializers import ProductModelSerializer  # 导入序列化器类，用于序列化和反序列化数据。
# from Drf_api.customMixin import ListModelMixin

class ProductListMixin(GenericAPIView,ListModelMixin,CreateModelMixin): 
    queryset = Product.objects.all()  # 接收的是查询之后的数据
    serializer_class = ProductModelSerializer  # 接收的是序列化器类，用于序列化和反序列化数据。
    
    def get(self,request):  # 定义get方法，用于获取所有数据。
        return self.list(request)  # 调用list方法，获取所有数据。
    
    def post(self,request):  # 定义post方法，用于添加数据。
        return self.create(request)  # 调用create方法，添加数据。
    
class ProductDetailMixin(GenericAPIView,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin):  # 定义ProductDetailMixin类，用于获取指定数据。
    queryset = Product.objects.all()  # 接收的是查询之后的数据
    serializer_class = ProductModelSerializer  # 接收的是序列化器类，用于序列化和反序列化数据。
    
    def get(self,request,*args,**kwargs):  # 定义get方法，用于获取指定数据。
        return self.retrieve(request,*args,**kwargs)  # 调用retrieve方法，获取指定数据。
    
    def put(self,request,*args,**kwargs):  # 定义put方法，用于修改指定数据。
        return self.update(request,*args,**kwargs)  # 调用update方法，修改指定数据。

    def delete(self,request,*args,**kwargs):  # 定义delete方法，用于删除指定数据。
        return self.destroy(request,*args,**kwargs)  # 调用destroy方法，删除指定数据。